# 1.对以下数据进行多分类处理（每小题10分）
import tensorflow as tf
import numpy as np

from keras import utils, Sequential, losses, optimizers, layers

# (1)数据处理
# ①读取data-04-zoo.csv文件
# ②数据按照float类型处理
data = np.loadtxt('data-04-zoo.csv', delimiter=',')
# data=data.astaye(float)
print()
# ③将最后一列作为标签，其他数据作为特征
x_data = data[:, :-1]
y_data = data[:, -1]
onehot_dim = len(set(y_data))
print(x_data.shape)
print(y_data.shape)
# ④将y标签进行调整，从0开始计算
print(set(y_data))
# ⑤对y标签进行独热处理
y_onehot = utils.to_categorical(y_data, onehot_dim)
# (2)模型处理
# ①生成模型
# ②根据分类情况，设置网络，使用合理激活函数

model = Sequential(
    # layers.Dense(units=onehot_dim, input_dim=16, activation='softmax')
    layers.Dense(units=onehot_dim, activation='softmax')
)
# ③调试模型，使用合理代价函数及评估指标
model.compile(optimizer=optimizers.Adam(), loss=losses.categorical_crossentropy, metrics=['acc'])
# ④训练模型1000次
history = model.fit(x=x_data, y=y_onehot, epochs=1000)
# 打印预测值和真实值
tf.print(model.predict_classes(x=x_data))
tf.print(y_data)
